# 当前用户: shiping.zheng
# 当前日期: 2025/6/20
# 当前时间: 15:11
# 项目名称: Flag
"""
模块描述:
    此模块用于连接 Redis 集群并进行简单操作
"""
# 从 redis 模块导入 Redis
import redis

def connect_to_redis():
    try:
        # 使用 Redis 类连接，设置 single_connection_client=False 以支持集群操作
        r = redis.Redis(
            host="10.51.6.49",
            port=6379,
            decode_responses=True,  # 让返回值为字符串类型
            single_connection_client=False
        )
        # 测试连接，通过 ping 命令
        if r.ping():
            print("成功连接到 Redis 集群")
            return r
        else:
            print("无法连接到 Redis 集群")
            return None
    except Exception as e:
        print(f"连接 Redis 集群时出错: {e}")
        return None

if __name__ == '__main__':
    redis_client = connect_to_redis()
    if redis_client:
        target_key = 'xuntian:device:code:map:SP00259222280014'
        # 检查键是否存在
        if redis_client.exists(target_key):
            # 检查键的数据类型是否为哈希
            if redis_client.type(target_key) == 'hash':
                # 获取哈希的所有字段和值
                hash_data = redis_client.hgetall(target_key)
                if hash_data:
                    print(f"从 Redis 集群获取键 {target_key} 的哈希数据:")
                    for field, value in hash_data.items():
                        print(f"字段: {field}, 值: {value}")
                else:
                    print(f"键 {target_key} 对应的哈希数据为空。")
            else:
                print(f"键 {target_key} 不是哈希类型。")
        else:
            print(f"Redis 集群中不存在键: {target_key}")
        # 关闭连接
        redis_client.close()
